<script>
  // 1
  {
    const [a = 1] = [] // <--
    console.assert(a === 1, '1. 不成立')
  }
  // 2
  {
    const [, b = 2] = [1, , 3] // <--
    console.assert(b === 2, '2. 不成立')
  }
  // 3
  {
    const { a, b = 2 } = { a: 1 }  // <--
    console.assert(b === 2, '3. 不成立')
  }
  // 4
  {
    const { a, b = 2 } = { a: 1, b: undefined } // <--
    console.assert(b === 2, '4. 不成立')
  }
  // 5
  {
    const [, a = 1, b = 2] = '1' // <--
    console.assert(a === 1 && b === 2, '5. 不成立')
  }
  // 6
  {
    const { x: y } = { x: 1 }
    console.assert(y === 1, `6. y === 1 不成立`)
  }
  // 7
  {
    const { x: y = 42 } = { y: 23 }
    console.assert(y === 42, `7. y === 42 不成立`)
  }
  // 8
  {
    function fn8({ x: y }) {
      console.assert(y === 1, `8. y === 1 不成立`)
    }
    fn8({ x: 1 })
  }
  // 9
  {
    function fn9({ x: y = 3 }) {
      console.assert(y === 3, `9. y === 3 不成立`)
    }
    fn9({})
  }
</script>